import requests
from flask import request

def get_client_ip():
    """获取客户端IP地址并尝试获取地理位置信息"""
    # 获取IP地址
    if request.headers.get('X-Forwarded-For'):
        ip = request.headers.get('X-Forwarded-For').split(',')[0]
    elif request.headers.get('X-Real-IP'):
        ip = request.headers.get('X-Real-IP')
    else:
        ip = request.remote_addr

    try:
        # 使用 ip-api.com 的免费API获取IP地理位置信息
        response = requests.get(f'http://ip-api.com/json/{ip}')
        if response.status_code == 200:
            data = response.json()
            if data['status'] == 'success':
                return {
                    'ip': ip,
                    'location': f"{data.get('country', '')} {data.get('city', '')}",
                    'isp': data.get('isp', '未知'),
                    'region': data.get('regionName', '未知')
                }
    except:
        pass

    # 如果获取位置信息失败，只返回IP地址
    return {
        'ip': ip,
        'location': '未知',
        'isp': '未知',
        'region': '未知'
    } 